package cn.tedu.api;

import java.math.BigDecimal;
import java.util.Scanner;

//测试 小数运算不精确的解决方法
public class Test4_BigDecimal {
    public static void main(String[] args) {
//        method();//暴露问题
        method2();//用工具解决
    }
    public static void method2(){
        double a =new Scanner(System.in).nextDouble();
        double b =new Scanner(System.in).nextDouble();
        //创建工具类对象
        //BigDecimal(Double val)-- 有坑，更不准了
        //BigDecimal(String val)--推荐
        BigDecimal bd1 = new BigDecimal(String.valueOf(a));
        BigDecimal bd2 = new BigDecimal(b+"");//拼接字符串
        //常用方法
        BigDecimal x1 = bd1.add(bd2);//--加法
        System.out.println(x1);
        //
        BigDecimal x2 = bd1.subtract(bd2);//--减法
        System.out.println(x2);
        //
        BigDecimal x3 = bd1.multiply(bd2);//--乘法
        System.out.println(x3);
        //除不尽时，会抛出异常
//        BigDecimal x4 = bd1.divide(bd2);//--除法
        //第一个参数是想和谁做运算...第二个参数是保留的位数...第三个参数是舍入模式
        BigDecimal x4 = bd1.divide(bd2,5,BigDecimal.ROUND_HALF_UP);
        System.out.println(x4);

    }
    public static void method(){
        double a =new Scanner(System.in).nextDouble();
        double b =new Scanner(System.in).nextDouble();
        System.out.println(a-b);
        System.out.println(a+b);//
        System.out.println(a*b);//
        System.out.println(a/b);

    }
}
